class Watcher {
  constructor(vm,key,cb) {
    this.vm = vm
    //data中的属性名
    this.key = key
    //回调函数负责更新视图
    this.cb = cb
    Dep.target = this
    //出发get方法，在get方法中调用addSub
    this.oldValue = vm[key]
    Dep.target = null
  }

  update() {
    let newValue = this.vm[this.key]
    if(this.oldValue===newValue) {
      return
    }
    this.cb(newValue)
  }
}
